package com.dyw.Day12;



/**
 * @author Devil
 * @create 2022-01-21-23:54
 *
 * 思路:添加一个空节点用于防止删除第一个节点的情况 快慢指针:设置两个指针 一个快指针先走走到第n个位置 此时快慢指针一起走
 * 由于快慢指针之间相差n个位置 所以当快指针的next到达末尾时慢指针也就到达了倒数第n+1个的位置 此时再进行删除操作即可
 */
@SuppressWarnings("all")
public class Demo01 {
    public ListNode removeNthFromEnd(ListNode head, int n) {
        //给头结点上再加上一个空节点
        ListNode Head = new ListNode(0,head);
        ListNode pre = Head;
        ListNode p = head;
        int i = 1;
        while(i++<n){
            p=p.next;
        }
        while(p.next!=null){
            p=p.next;
            pre=pre.next;
        }
        pre.next=pre.next.next;
        return  Head.next;
    }
}
